This call is to create a payment using billingAccountNumber for a POSTPAID and FIXED customers.
URL
https://[host]:[port]/dxp-ux/v1/{businessId}/payment
URL PARAMS
name | type | description | required |
---|
businessId | string | 2 letter ISO 3166 country code (TT, BB, JM, PA, etc.) identifying the business unit. | Y |
name | value | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
---|
client_id | string | The client_id identifying the channel. Minimum characters: 5 | Y (PA, PR) |
client_secret | string | Password associated with the client_id. Minimum characters: 5 | Y (PA, PR) |
X-Correlation-ID | string | Identifier that correlates HTTP request between a client and server. Any identification model (UUDI, checksum, etc.) can be used, as long as it is a unique value to differentiate a transaction. | Y (PA, PR) |
channelId | string | Channel to business: Allowed value: APP | Y(PR) N(PA) |
lob | string | The Line of Business Identifier Allowed value: POSTPAID | Y(PR) N(PA) |
targetSystem | String | To identify the bss system Eg: aria | Y(PR) N(PA) |
Data Model
Request Data Model
name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
---|
account | object | Account reference. A account may be a party account or a financial account. | Y(PA, PR) |
account.id | string | Customer billing account id | Y(PA, PR) |
account.@type | string | Static text “CustomerAccountRef” | N/A(PA) N(PR) |
amount | object | A base / value business entity used to represent money | N/A(PA) N(PR) |
amount.value | Number | Payment Amount | N/A(PA) N(PR) |
amount.unit | string | (ISO4217 norm uses 3 letters to define the currency) | N/A(PA) N(PR) |
paymentMethod | object | link to the resource that holds information about the payment mean used to complete the operation | Y(PA, PR) |
paymentmethod.id | string | Payment method Id | N/A(PA) Y(PR) |
paymentmethod.@type | string | “PaymentMethodRef” static text to refer the object | Y(PA) N(PR) |
@type | string | “Payment” to refer the object | N/A(PA) N(PR) |
correlatorId | string | Unique identifier in the client for the payment in case it is needed to correlate | Y(PA) N/A(PR) |
name | string | Screen name of the payment | Y(PA) N/A(PR) |
description | string | Text describing the contents of the payment | Y(PA) N/A(PR) |
totalAmount | object | A base / value business entity used to represent money | Y(PA) N/A(PR) |
totalAmount.value | number | A positive floating point number | Y(PA) N/A(PR) |
paymentItem[] | array | The paymentItem is the result of lettering process. It enables to assign automatically or manually part of incoming payment amount to a bill | Y(PA) N/A(PR) |
paymentItem[].amount | object | A base / value business entity used to represent money | N(PA) N/A(PR) |
paymentItem[].amount.value | number | A positive floating point number | N(PA) N/A(PR) |
paymentItem[].taxAmount | object | A base / value business entity used to represent money | N(PA) N/A(PR) |
paymentItem[].taxAmount.value | number | A positive floating point number | N(PA) N/A(PR) |
paymentItem[].totalAmount | object | A base / value business entity used to represent money | Y(PA) N/A(PR) |
paymentItem[].totalAmount.value | number | A positive floating point number | Y(PA) N/A(PR) |
paymentItem[].item | object | Entity reference schema to be use for all entityRef class. | Y(PA) N/A(PR) |
paymentItem[].item.@referredType | string | The actual type of the target instance when needed for disambiguation. | Y(PA) N/A(PR) |
paymentItem[].item.id | string | Unique identifier of a related entity. | Y(PA) N/A(PR) |
payer | object | Related Entity reference. A related party defines party or party role linked to a specific entity. | N(PA) N/A(PR) |
payer.id | string | Unique identifier of a related entity. | N(PA) N/A(PR) |
channel | object | The channel to which the resource reference to. e.g. channel for selling product offerings, channel for opening a trouble ticket etc.. | Y(PA) N/A(PR) |
channel.id | string | Unique identifier of a related entity. This is considered as cashierId/ employeeId Example: "833904" | Y(PA) N/A(PR) |
Response Data Model
name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
---|
id | string | Processor Payment id | Y(PR) N/A(PA) |
status | string | Status of the payment | Y(PR) N/A(PA) |
statusdate | datetime | Date when the status was recorded | N(PR) N/A(PA) |
authorizationcode | string | Authorization code retrieved from an external payment gateway that could be used for conciliation | Y(PR) N/A(PA) |
descrption | string | Text describing the contents of the payment | Y(PR) N/A(PA) |
account.id | string | Customer billing account id | Y(PA, PR) |
account.@type | string | Static text “CustomerAccountRef” | N(PR) N/A(PA) |
amount | object | A base / value business entity used to represent money | N(PR) N/A(PA) |
amount.value | number | Payment Amount | N(PR) N/A(PA) |
amount.unit | string | urrency (ISO4217 norm uses 3 letters to define the currency) | N(PR) N/A(PA) |
paymentmethod | object | link to the resource that holds information about the payment mean used to complete the operation | Y(PR) N/A(PA) |
paymentmethod.id | string | Unique Identifier within the server for the payment method. | Y(PR) N/A(PA) |
paymentmethod.@type | string | “PaymentMethodRef” static text to refer the object | N(PR) N/A(PA) |
@type | string | “Payment” to refer the object | N(PR) N/A(PA) |
correlatorId | string | Unique identifier in the client for the payment in case it is needed to correlate | Y(PA) N/A(PR) |
account | object | Account reference. A account may be a party account or a financial account. | Y(PA ,PR) |
paymentItem[] | array | The paymentItem is the result of lettering process. It enables to assign automatically or manually part of incoming payment amount to a bill | Y(PA) N/A(PR) |
paymentItem[].totalAmount | object | A base / value business entity used to represent money | Y(PA) N/A(PR) |
paymentItem[].totalAmount.value | number | A positive floating point number | Y(PA) N/A(PR) |
paymentItem[].item | object | Entity reference schema to be use for all entityRef class. | Y(PA) N/A(PR) |
paymentItem[].item.@referredType | string | The actual type of the target instance when needed for disambiguation. | Y(PA) N/A(PR) |
paymentItem[].item.id | string | stringUnique identifier of a related entity. | Y(PA) N/A(PR) |
Key considerations
PA Implementation
1. The implementation to create the payment is available for types Order, Deposit and Batch.
2. We should consider Order and Batch for Billpayments.
3. The PaymentMethod which we are giving in Input should be configured at Liberate Side.
4. Below are some of the sample payment methods configured for Panama
- CASH=C
- CHECK=Q
- CREDIT_CARD=R
- AMEX_CREDIT_CARD=W
- CLAVE=S
- DEBIT_CARD=X
5. The Value for PaymentItem[X].item.id should be matched with the Deposit Requirement Id to make any deposits for referredType "Deposit"(For Panama CareApp Migration "Deposit Payment" is not in the Scope as the enabler PAN-2332 only covers BillPayment).
6. Channel.id is considered as a CashierId. This should be configured and cash drawer should be open in Liberate.
Possible Error Scenarios for PR :
{
"errors": [
{
"code": 400,
"message": "ARIA:CREATEPAYMENT",
"description": "4020 | Balance is less than zero"
},
{
"code": 400,
"message": "ARIA:BUSINESS_ERROR",
"description": "4039 | Collection not attempted since a negative balance exists on the account"
}
]
}
Possible Error Scenario for PA When Cash drawer is not open or not found for the provided cashierID (Channel.id) :
{
"correlatorId": "4444445435131231",
"account": {
"id": "101000180000"
},
"paymentItem": [
{
"totalAmount": {
"amount": 1.1
},
"item": {
"referredType": "Order",
"id": "error",
"description": "NOCURRCASH-Current cashdrawer not found for the specified cashier."
}
}
]
}